import router from "./index"
import store from "@/store/index"

router.beforeEach((to, from, next) => {
    /* 
        如果本地缓存中没有token，
        判断下一步路由是否是允许未登录用户访问的（绝大多数情况都是跳转回login界面） 
    */
    if (!store.state.UserToken) {
        if (to.matched.length > 0 && !to.matched.some(record => record.meta.requireAuth)) {
            next()
        }
        else {
            next({ path: '/login' })
        }
    } else {
        // 用户已经登录  路由的访问权限
        if (!store.state.permission.permissionList) {
            // 调用permission模块中的FETCH_PERMISSION异步方法，去生成新的路由表
            store.dispatch("permission/FETCH_PERMISSION").then(() => {
                next({
                    path: to.path
                })
            })
        } else {
            // store存在权限
            if (to.path !== "/login") {
                next();
            } else {
                next(from.fullPath)
            }
        }
    }

})